﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using CROSLAND.BL.BE;
using CROSLAND.BL.BC;
using CM.BL.BE;
using CROSLAND.DL.DALCF;
using CROSLAND.DL.DALC;
using System.Collections.Specialized;

namespace CROSLAND.WebApp
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DaoFactory.pConnId = "";
                //DALC.logOut(Session.SessionID);
                Session.RemoveAll();
                Session.Clear();
                Session.Abandon();
                Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
                CredencialesController.Usuario = null;                
            }
        }

        protected void LoginCrystalis_LoggingIn(object sender, LoginCancelEventArgs e)
        {
            try
            {
                UsuarioWebBE objUsuarioWeb = new UsuarioWebBE();
                objUsuarioWeb.Usuario = LoginCrystalis.UserName.Trim().ToUpper(); //WEBDIST
                objUsuarioWeb.Clave = LoginCrystalis.Password.Trim();
                //objUsuarioWeb.guid =  Guid.NewGuid().ToString();
                DaoFactory.pConnId = Session.SessionID;
                //CredencialesController.Usuario = objUsuarioWeb;
                string retval = UsuarioBC.Instance.login(ref objUsuarioWeb);

                if (string.IsNullOrEmpty(retval))
                {
                    //if (string.IsNullOrEmpty(objUsuarioWeb.UsuarioSap) || string.IsNullOrEmpty(objUsuarioWeb.ClaveSap))
                    //{
                    //    LoginCrystalis.InstructionText = "No cuenta con un Usuario SAP asignado.";
                    //}
                    //else
                    //{
                    //bool verifPswd = ParametroBC.contraseniaValida(objUsuarioWeb.Clave);
                    //Session.Timeout = Convert.ToInt32(ParametroBC.Instance.getParamValue("SessionTimeout"));
                    Session["UsuarioWeb"] = objUsuarioWeb;

                    ////*****************************************************************
                    //PersonaBE objPersona = PersonaBC.Instance.leer(objUsuarioWeb.PerNr);
                    ////*****************************************************************
                    //if (objPersona == null)
                    //{
                    //    objPersona = new PersonaBE();
                    //}
                    //Session["PersonaWeb"] = objPersona;

                    Session["UsuarioSAP"] = new object();

                    CredencialesController.Usuario = objUsuarioWeb;

                    ////--- validar si pswd expiró
                    //int comparacion = objUsuarioWeb.FechaPswd.AddDays(Convert.ToDouble(ParametroBC.Instance.getParamValue("ExpDiaPass"))).CompareTo(DateTime.Today);
                    //if (comparacion <= 0)
                    //{
                    //    Session["Contrasenia"] = ParametroBC.Instance.getParamValue("PasswdAviso").Replace("\\n", "<br />");
                    //    Session["Bandera"] = true;
                    //    Response.Redirect(ParametroBC.Instance.getParamValue("PasswdPage"));
                    //}
                    ////---------------------------

                    //Session["Bandera"] = false;

                    //if (verifPswd)
                    //{
                    Response.Redirect(ParametroBC.Instance.getParamValue("MainPage"));
                    //}
                    //else
                    //{
                    //    Session["Contrasenia"] = ParametroBC.Instance.getParamValue("PasswdChangeText").Replace("\\n", "<br />");
                    //    Response.Redirect(ParametroBC.Instance.getParamValue("PasswdPage"));
                    //}
                    //}
                }
                else
                {
                    LoginCrystalis.InstructionText = retval;
                    e.Cancel = true;
                }
            }
            catch (Exception ex)
            {
                LoginCrystalis.InstructionText = ex.Message.Replace("\\n", "<br />");
                e.Cancel = true;
            }
            //e.Cancel = true;
        }

        private string SAPLogin(ref UsuarioWebBE pUsuarioWeb)
        {
            //asignar nuevo id de conexión
            pUsuarioWeb.guid = Guid.NewGuid().ToString();
            pUsuarioWeb.UsuarioSap = "RHUAPAYA";// "VENDEDORLM"; //WEBDIST
            pUsuarioWeb.ClaveSap = "crosland01";// "DECORCENTER";

            string retval = UsuarioBC.Instance.login(ref pUsuarioWeb);
            return retval;
        }
    }
}
